<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.prime.com.tr/ui"
                xmlns:c="http://java.sun.com/jsp/jstl/core"
                xmlns:vti="http://java.sun.com/jsf/composite/components/vti">
    <h:form id="formCadastroUsuario" prependId="false">
        <div id="campoObrigatorio" class="campoObrigatorio">
            <h:graphicImage library="images" name="required.gif" styleClass="imgCampoObrigatorio" />
            <h:outputText value="#{msgs['item.obrigatorio']}" />
        </div>
        <h:panelGrid>
            <vti:buttonPesquisa id="empresa" label="#{msgs['campo.empresa']}" required="true"
                                value="#{usuarioBean.entidade['empresaFk']['nome']}" size="36"
                                rendered="#{usuarioBean.entidade['id'] == null}"
                                idDialogPesquisa="dlgPesqEmpresa" idDialogCadastro="#{request.userPrincipal.principal.permissoes.contains('ROLE_ADMIN') ? 'dlgCadEmpresa' : ''}" />
            <vti:inputText id="empresaView" label="#{msgs['campo.empresa']}" readonly="true" 
                            maxlength="80" size="51" value="#{usuarioBean.entidade['empresaFk']['nome']}"
                            rendered="#{usuarioBean.entidade['id'] != null}" />
            <vti:inputText id="setor" label="#{msgs['campo.setor']}" required="true"
                            maxlength="20" size="51" value="#{usuarioBean.entidade['nmSetor']}" />
            <vti:inputText id="nome" label="#{msgs['campo.nome']}" required="true"
                            maxlength="80" size="51" value="#{usuarioBean.entidade['nome']}" />
            <h:outputLabel for="email" styleClass="labels" value="#{msgs['campo.email']}"
                           rendered="#{usuarioBean.entidade['id'] == null}" />
            <h:panelGrid columns="4" rendered="#{usuarioBean.entidade['id'] == null}">
                <f:validateBean>
                    <h:inputText id="email" label="#{msgs['campo.email']}"
                                 title="#{!jsfManager.valid('email') ? jsfManager.getErrorMsg(cid) : msgs['campo.email']}"
                                 styleClass="ui-inputfield ui-state-default ui-corner-all #{!jsfManager.valid('email') ? 'errors' : 'input'}"
                                 maxlength="40" size="40" value="#{usuarioBean.entidade['email']}" />
                </f:validateBean>
                <h:outputLabel for="dominio" value="@" />
                <h:inputText id="dominio" label="#{msgs['campo.email']}" readonly="true" onclick="return false"
                             title="#{!jsfManager.valid('email') ? jsfManager.getErrorMsg(cid) : msgs['campo.email']}"
                             styleClass="ui-inputfield ui-state-default ui-corner-all #{!jsfManager.valid('email') ? 'errors' : 'inputReadonly'}"
                             size="15" value="#{usuarioBean.entidade['empresaFk']['dominio']}" />
                <h:graphicImage library="images" name="required.gif" styleClass="imgCampoObrigatorio" />
            </h:panelGrid>
            <vti:inputText id="emailView" label="#{msgs['campo.email']}" readonly="true"
                            maxlength="80" size="51" value="#{usuarioBean.entidade['email']}"
                            rendered="#{usuarioBean.entidade['id'] != null}" />
            <vti:inputSecret id="senha" label="#{msgs['campo.senha']}"
                             required="#{!request.userPrincipal.principal.permissoes.contains('ROLE_ADMIN')}"
                             maxlength="10" size="51" value="#{usuarioBean.entidade['senha']}" />
            <vti:inputSecret id="senhaConf" label="#{msgs['campo.confirmarsenha']}"
                             required="#{!request.userPrincipal.principal.permissoes.contains('ROLE_ADMIN')}"
                             maxlength="10" size="51" value="#{usuarioBean.senhaConf}" />
            <h:panelGrid columns="2" rendered="#{request.userPrincipal.principal.permissoes.contains('ROLE_ADMIN')}"
                         style="margin: 6px 0 4px 4px">
                <h:selectBooleanCheckbox id="status" value="#{usuarioBean.ativo}"
                                         title="#{msgs['campo.status']}" label="#{msgs['campo.status']}" />
                <h:outputLabel for="status" value="#{msgs['campo.status']}" />
            </h:panelGrid>
        </h:panelGrid>
        <h:panelGrid columns="3" styleClass="barraBotoes">
            <p:commandButton action="#{usuarioBean.salvar}"
                             label="#{msgs['acao.salvar']}"
                             value="#{msgs['acao.salvar']}"
                             title="#{msgs['acao.salvar']}" update="@form,#{messages}" ajax="false"
                             process="#{jsfManager.getRealName('empresa_text,setor_text,nome_text,email,senha_text,senhaConf_text')},@this" />
            <p:commandButton actionListener="#{usuarioBean.resetCadastro}"
                             label="#{msgs['acao.limpar']}"
                             value="#{msgs['acao.limpar']}"
                             title="#{msgs['acao.limpar']}" process="@this"
                             immediate="true" update="@form,#{messages}" />
            <p:commandButton action="/autenticacao/login?faces-redirect=true"
                             label="#{msgs['acao.voltar.login']}"
                             value="#{msgs['acao.voltar.login']}" 
                             title="#{msgs['acao.voltar.login']}"
                             rendered="#{request.userPrincipal == null}"
                             process="@this" immediate="true" />
        </h:panelGrid>
    </h:form>
    <vti:dialogForm id="dlgPesqEmpresa"
                 onCloseUpdate="#{jsfManager.getRealName('empresa_text,dominio,formPesquisaEmpresa')}"
                 closeListener="#{empresaBean.closeListener}"
                 titulo="#{msgs['titulo.pesquisa']} #{msgs['titulo.empresa']}"
                 selectionFor="#{usuarioBean.entidade['empresaFk']}"
                 pagePesquisa="/protegido/pesqEmpresa.xhtml" />
    <vti:dialogForm id="dlgCadEmpresa" selectionFor="#{empresaBean.entidade}"
                    onselectUpdate="#{jsfManager.getRealName('formCadastroEmpresa')}"
                    titulo="#{msgs['titulo.cadastro']} #{msgs['titulo.empresa']}"
                    pageCadastro="/protegido/cadEmpresa.xhtml"
                    pagePesquisa="/protegido/pesqEmpresa.xhtml" height="550"
                    onCloseUpdate="#{jsfManager.getRealName('dlgCadEmpresa:empresa:empresa_text,dlgCadEmpresa:formCadastroEmpresa,dlgCadEmpresa:formPesquisaEmpresa')}"
                    closeListener="#{empresaBean.closeListener}" />
</ui:composition>
